#ifndef GAME_H
#define GAME_H
//--------------------------------------------------------------------------------
#include "Defines.h"
#include "Window.h"
#include "Renderer.h"
#include "Timmer.h"
//--------------------------------------------------------------------------------



//--------------------------------------------------------------------------------

class ENGINE_API Game
{

public:
	Game(HINSTANCE hInstance);
	virtual ~Game();

	//engine functions
	bool StartUp();
	bool Loop();
	bool ShutDown();
	Timmer timer;
protected:
	//game virtual functions to be overloaded in game
	virtual bool OnStartUp()=0;
	virtual bool OnLoop()=0;
	virtual bool OnShutDown()=0;

private:
	Window* m_pkWindows;
	HINSTANCE m_hInstance;
	Renderer* render;

	// = NULL;
	

/*
	//scenes
public:

private:
	typedef map< string, Scene* > SceneMap;
	typedef map< string, Scene* >::iterator SceneMapIt;
	SceneMap m_kpaSceneToUpdate;
	SceneMap m_kpaSceneToDraw;
	Map* m_pkCurrentMap;

public:
	bool addSceneToUpdate(Scene* pkScene);
	bool removeSceneToUpdate(Scene* pkScene);
	bool addSceneToDraw(Scene* pkScene);
	bool removeSceneToDraw(Scene* pkScene);
	void setCurrentMap(Map* pkMap);
*/
};
//--------------------------------------------------------------------------------
#endif //GAME_H 